{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2024-05-08T01:49:07.796133100Z",
     "start_time": "2024-05-08T01:49:06.851451100Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1000x600 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAH5CAYAAACve4DDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4iklEQVR4nO3dfXzN9f/H8eexzTFsk6vtTDPTZvOdkfL9ispViEZEuaqfqxJRkkJ0YYktl/mh6Fea66LLb8U3pK+V9KuRSeUbylix377VbGYa287vDzefr2Mjy+cYez/ut9vndvO5ep/XZ5/Pcc7zvD8XDrfb7RYAAAAAVHCVyrsAAAAAALgUCD8AAAAAjED4AQAAAGAEwg8AAAAAIxB+AAAAABiB8AMAAADACIQfAAAAAEbwLe8C/ozi4mIdOnRIAQEBcjgc5V0OAAAAgHLidrt19OhRhYaGqlKl8/ftXJHh59ChQwoLCyvvMgAAAABcJjIyMnT11Vefd5krMvwEBARIOrWBgYGB5VwNAAAAgPKSm5ursLAwKyOczxUZfk6f6hYYGEj4AQAAAHBBl8NwwwMAAAAARiD8AAAAADAC4QcAAACAEQg/AAAAAIxA+AEAAABgBMIPAAAAACMQfgAAAAAYgfADAAAAwAiEHwAAAABGIPwAAAAAMALhBwAAAIARCD8AAAAAjED4AQAAAGAEwg8AAAAAIxB+AAAAABiB8AMAAADACIQfAAAAAEbwLe8CLldFRUU6efJkeZcBAAAAVAh+fn7y8fEp1xoIP2dxu93KzMzUkSNHyrsUAAAAoEKpUaOGQkJC5HA4yuX1CT9nOR186tatq6pVq5bbjgEAAAAqCrfbrfz8fGVlZUmSXC5XudRB+DlDUVGRFXxq1apV3uUAAAAAFYa/v78kKSsrS3Xr1i2XU+C44cEZTl/jU7Vq1XKuBAAAAKh4Tn/PLq9r6wk/peBUNwAAAMB+5f09m/ADAAAAwAiEHwAAAC/bvHmzHA4Hd5NFuUtISNC1115bpnXatWunMWPGeKWeS40bHlygBo+vvWSvlf5cfJnXGTx4sJYuXarhw4dr0aJFHvNGjhyphQsXatCgQVqyZIk1fevWrbr55pvVqVMnffjhh541pKcrIiJCO3bsKPEGadeuna699lrNnTvXGk9JSdFrr72mfv36WcvNnTtXc+fOVXp6epm3xxYJQZfwtXLKvIrJ++z777/XiBEj9N133yknJ0ehoaEaMGCAJk+eLD8/P6++dmnilsZd0tfbNWhXmdcx+XjZvHmznn/+eX355ZfKzc1VVFSUxo0bp7vvvturr3suu2MaX9LXa/yv3WVex+TjBX/OCyM+vqSvN2pRhzItzzFtn8cee0wPPfSQ7e06HA6988476tmzp+1t24menwokLCxMr7/+uo4fP25N+/333/Xaa6+pfv36JZZ/9dVX9dBDD2nLli06ePDgRb12lSpV9OSTT/Jg2DIydZ/5+flp4MCB2rBhg77//nvNnTtXL7/8siZPnnzJa7mSmHq8bN26VU2bNtVbb72lr7/+WkOHDtXAgQP1/vvvX/JariSmHi+ouDim7VG9enWj72pM+KlArrvuOtWvX19vv/22Ne3tt99WWFiYmjdv7rHssWPHtGbNGj3wwAPq1q2bxy8lf0b//v2Vk5Ojl19++aLaMc2VuM8GDx6snj17atasWXK5XKpVq5ZGjRrl8YGQnZ2tgQMH6qqrrlLVqlXVtWtX7d2715rfsGFDDRkyRM2aNVN4eLhuv/123X333fr0008vapsqOlOPl0mTJunZZ59V69atdc0112j06NHq0qWL3nnnnYvaporO1OPlwIED6t69u6666ipVq1ZNsbGxWrdunaRTj7S49957FRERIX9/f0VHR+u///u/S60hMTFRwcHBqlGjhp555hkVFhZq3Lhxqlmzpq6++mq9+uqr1jrp6elyOBx6/fXX1bp1a1WpUkWxsbHavHnzebd369atatOmjfz9/RUWFqbRo0fr2LFjZfqbmcTEY9rtdqtOnTp66623rOWvvfZa1a1b1xr//PPP5efnp7y8PElSTk6O7r//ftWtW1eBgYHq0KGDdu7caS1/9mlvhYWFGj16tGrUqKFatWppwoQJGjRoUIkenOLiYo0fP141a9ZUSEiIEhISrHkNGjSQJN1xxx1yOBzW+OWI8FPBDBkyRMnJydb4q6++qqFDh5ZYbvXq1YqOjlZ0dLTuueceJScny+12/+nXDQwM1KRJkzRlyhT+4y6jK3Gf/fOf/9QPP/ygf/7zn1q6dKmWLFni8cEyePBgbdu2Te+9954+//xzud1u3Xbbbef8xWzfvn368MMP1bZt2z+9PabgeDklJydHNWvW/LObYwwTj5dRo0apoKBAn3zyiXbt2qXp06erevXqkk59ebv66qu1Zs0afffdd3r66ac1adIkrVmzxqOGjz/+WIcOHdInn3yiOXPmKCEhQd26ddNVV12lL774QiNGjNCIESOUkZHhsd64ceP06KOPaseOHWrdurVuv/12/frrr6Vu565du3TrrbeqV69e+vrrr7V69Wpt2bJFDz74YJn+XqYx7Zh2OBxq06aNFaSzs7P13Xff6eTJk/ruu+8knTo1+Prrr1f16tXldrsVHx+vzMxMrVu3Ttu3b9d1112nW265Rb/99lup9U2fPl0rV65UcnKyPvvsM+Xm5urdd98tsdzSpUtVrVo1ffHFF5oxY4amTJmijRs3SpJSU1MlScnJyTp8+LA1fjki/FQw//Vf/6UtW7YoPT1dBw4c0GeffaZ77rmnxHKLFy+2pnfp0kV5eXnatGlTieVat26t6tWrewzn+nV+5MiRqlKliubMmWPvRlVwV+I+u+qqq7RgwQLFxMSoW7duio+Pt2rZu3ev3nvvPb3yyiu6+eab1axZM61cuVI///xzif9MT/9CGhUVpZtvvllTpkwpUx0mMvl4Oe3NN99UamqqhgwZUqY6TGTi8XLw4EHdeOONiouLU8OGDdWtWze1adNG0qlTbp955hn99a9/VUREhO6++24NHjy4RPipWbOm5s2bp+joaA0dOlTR0dHKz8/XpEmTFBUVpYkTJ6py5cr67LPPPNZ78MEH1bt3bzVu3FgLFy5UUFCQFi9eXOp2zpw5UwMGDNCYMWMUFRWl1q1ba968eVq2bJl+//33Mv3NTGLiMd2uXTsr/HzyySdq1qyZOnToYE3bvHmz2rVrJ+lU0Nq1a5feeOMNtWjRQlFRUZo1a5Zq1KihN998s9T65s+fr4kTJ+qOO+5QTEyMFixYoBo1apRYrmnTppo8ebKioqI0cOBAtWjRwtqOOnXqSJJq1KihkJAQa/xyRPipYGrXrq34+HgtXbpUycnJio+PV+3atT2W+f777/Xll19aF+35+vqqb9++Hl34p61evVppaWkeQ4sWLUp9bafTqSlTpmjmzJn65Zdf7N+4Cupy3WcHDx70+DBITEy05sXGxno8ldnlcikrK0uStHv3bvn6+qply5bW/Fq1aik6Olq7d3teuL169Wp99dVXWrVqldauXatZs2ZdyJ/MaCYfL9KpD/nBgwfr5ZdfVmxs7B/9uYxn4vEyevRoTZ06VTfeeKMmT56sr7/+2uO1Fy1apBYtWqhOnTqqXr26Xn755RLXg8TGxqpSpf98RQoODlZc3H9ujOLj46NatWpZdZ3WqlUr69++vr5q0aJFqcexJG3fvl1Llizx+DvceuutKi4u1v79+0tdB2Ye0+3atdO3336rX375RSkpKWrXrp11E4bCwkJt3brVOnNi+/btysvLU61atTzq2b9/v3744YcS25STk6P/+7//09/+9jdrmo+Pj66//voSyzZt2tRj/MztuJJwt7cKaOjQoVa3+QsvvFBi/uLFi1VYWKh69epZ09xut/z8/JSdna2rrrrKmh4WFqbIyEiP9f39/c/52vfcc49mzZqlqVOnXtbne15uLsd9FhoaqrS0NGv8zFOMzr4jm8PhUHFxsVVXadxud4kHm4WFhUmS/vKXv6ioqEj333+/Hn30UY8PCZRk6vGSkpKi7t27a86cORo4cOA5a4Qn046X++67T7feeqvWrl2rDRs2KCkpSbNnz9ZDDz2kNWvW6JFHHtHs2bPVqlUrBQQEaObMmfriiy882iuthvPVdT7neqBjcXGxhg8frtGjR5eYV9rF+/gP047pJk2aqFatWkpJSVFKSoqmTJmisLAwTZs2TampqTp+/LhuuukmSaeOK5fLVer1ZqX15pxZ09mvf7Y/+x643NDzUwF16dJFJ06c0IkTJ3Trrbd6zCssLNSyZcs0e/Zsj185du7cqfDwcK1cufKiXrtSpUpKSkrSwoULr7hbP5any3Gf+fr6KjIy0hou9PqKv/zlLyosLPT4MvHrr79qz549atz43LcIdrvdOnny5EWdk20KE4+XzZs3Kz4+Xs8995zuv//+i9oG05h4vISFhWnEiBF6++239eijj1oXqX/66adq3bq1Ro4cqebNmysyMrLUX8P/rP/93/+1/l1YWKjt27crJiam1GWvu+46ffvttx5/h9ND5cqVbaupIjLtmD593c/f//53ffPNN7r55psVFxenkydPatGiRbruuusUEBAg6dRxlZmZWaKeyMjIEj1kkhQUFKTg4GB9+eWX1rSioiLt2LGjzH8bPz8/FRUVlXm9S42enwrIx8fH6io9+xf0Dz74QNnZ2br33nsVFOT5HJw777xTixcvvuiLLePj49WyZUu99NJLCg4Ovqi2TFGR9llUVJR69OihYcOG6aWX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rVo1tWjRQl988cWl3gzY4PSxcObg4+Ojrl27aurUqR7/f+Py80efx2UREBCgkJAQRUZGaurUqYqKivLo8XM4HAoJCZHL5VKLFi30yCOP6MCBA/r+++8vfkNQZnbs+/z8fA0ZMkS33Xab3nvvPXXs2FERERFq2bKlZs2a5dH7hwtH+KmAVq9erejoaEVHR+uee+5RcnKyTj/Ldu3aterVq5fi4+O1Y8cObdq0SS1atLDWHThwoF5//XXNmzdPu3fv1qJFi1S9evXy2hT8Cf7+/lYvz759+7RmzRq99dZbSktLkyTFx8crMzNT69at0/bt23Xdddfplltu0W+//VaOVeNcfvzxR3344Yfy8/OTJL388st64oknNG3aNO3evVuJiYl66qmntHTpUklSXl6e2rZtq0OHDum9997Tzp07NX78eBUXF5fnZgBGOt/n8cWqUqXKOXv0jxw5olWrVkmS9X8HLi079v369ev1yy+/aPz48aXOr1Gjhg2Vmse3vAuA/RYvXqx77rlH0qlTJvLy8rRp0yZ17NhR06ZNU79+/fTMM89Yyzdr1kyStGfPHq1Zs0YbN25Ux44dJUkNGza89BuAP+3LL7/UqlWrdMstt0iSTpw4oeXLl6tOnTqSpI8//li7du1SVlaWnE6nJGnWrFl699139eabb+r+++8vt9rxHx988IGqV6+uoqIi/f7775KkOXPmSJKeffZZzZ492/rFPyIiQt99951eeuklDRo0SKtWrdK///1vpaamqmbNmpKkyMjI8tkQXLTTx8JpXbt21RtvvFGOFaEszvd5/GcVFhZqxYoV2rVrlx544AFrek5OjqpXry632638/HxJ0u23366YmJiL2wj8KXbs+71790oS+9BmhJ8K5vvvv9eXX36pt99+W5Lk6+urvn376tVXX1XHjh2VlpamYcOGlbpuWlqafHx81LZt20tZMi7S6S9HhYWFOnnypHr06KH58+frxRdfVHh4uBV8JGn79u3Ky8tTrVq1PNo4fvy4fvjhh0tdOs6hffv2WrhwofLz8/XKK69oz549euihh/Tvf/9bGRkZuvfeez3ex4WFhQoKCpJ06n3cvHlzK/jgynb6WDitWrVq5VgNyuKPPo/LasKECXryySdVUFCgypUra9y4cRo+fLg1PyAgQF999ZUKCwuVkpKimTNnatGiRbZtDy6cXfverl5CeCL8VDCLFy9WYWGh6tWrZ01zu93y8/NTdna2/P39z7nu+ebh8nX6y5Gfn59CQ0M9TnE4+4tScXGxXC6XNm/eXKIdus8vH9WqVbN6a+bNm6f27dvrmWee0YMPPijp1KlvLVu29FjHx8dHEu/jiubMYwFXlj/6PA4MDJR0qsfm7P9/jxw5Yv2gcdq4ceM0ePBgVa1aVS6XSw6Hw2N+pUqVrGMlJiZGmZmZ6tu3rz755BMvbB3Ox65936hRI0nSv/71L7Vq1erSFG8ArvmpQAoLC7Vs2TLNnj1baWlp1rBz506Fh4dr5cqVatq0qTZt2lTq+nFxcSouLlZKSsolrhwX4/SXo/Dw8D88t/u6665TZmamfH19FRkZ6THUrl37ElWMspo8ebJmzZqloqIi1atXTz/++GOJ/RcRESFJatq0qdLS0riGCyhHF/J5HBUVpUqVKik1NdVj3cOHD+vnn39WdHS0x/TatWsrMjLSur35H3nkkUe0c+dOvfPOO7ZuG87Pzn3fuXNn1a5dWzNmzCj1tUq7VTb+GD0/FcgHH3yg7Oxs3XvvvSV+Mbrzzju1ePFiPf/887rlllt0zTXXqF+/fiosLNQ//vEPjR8/Xg0aNNCgQYM0dOhQzZs3T82aNdOBAweUlZWlPn36lNNWwU4dO3ZUq1at1LNnT02fPl3R0dE6dOiQ1q1bp549e3rc/AKXj3bt2ik2NlaJiYlKSEjQ6NGjFRgYqK5du6qgoEDbtm1Tdna2xo4dq/79+ysxMVE9e/ZUUlKSXC6XduzYodDQUH45rEDy8vK0b98+a3z//v1KS0tTzZo1Vb9+/XKsDNKFfR4/+OCDGj58uB599FH5+vqqWbNmOnTokJ544gk1btxYnTt3vqgaAgMDdd9992ny5Mnq2bPnBQUmXDw79321atX0yiuv6K677tLtt9+u0aNHKzIyUr/88ovWrFmjgwcP6vXXXy+Pzbyi0fNTgSxevFgdO3Ys8WaTpN69eystLU2BgYF644039N577+naa69Vhw4dPG6Bu3DhQt15550aOXKkYmJiNGzYMB6YWYE4HA6tW7dObdq00dChQ9WoUSP169dP6enpCg4OLu/ycB5jx47Vyy+/rFtvvVWvvPKKlixZori4OLVt21ZLliyxen4qV66sDRs2qG7durrtttsUFxen5557zjotDhXDtm3b1Lx5czVv3lzSqeOjefPmevrpp8u5MkgX9nn81Vdf6fnnn9d9992nSZMmKTY2VnfffbciIiK0YcMG+fpe/O/TDz/8sHbv3s1NMi4hu/d9jx49tHXrVvn5+WnAgAGKiYlR//79lZOTo6lTp17KTaswHG6upgIAAABgAHp+AAAAABiB8AMAAADACIQfAAAAAEYg/AAAAAAwAuEHAAAAgBEIPwAAAACMQPgBAAAAYATCDwAAAAAjEH4AAAAAGIHwAwAAAMAIhB8AAAAARvh/QQ6psbuo2q4AAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 创建示例数据\n",
    "x = np.arange(6)  # 五个坐标点\n",
    "bar_width = 0.15  # 柱子宽度\n",
    "\n",
    "# 每个坐标点上的四个柱子的高度数据\n",
    "data1 = [91.85, 90.48, 93.52, 91.94, 97.47, 97.39]\n",
    "data2 = [89.20, 88.37, 90.36, 89.33, 96.49, 96.11]\n",
    "data3 = [77.97, 82.90, 70.46, 76.07, 87.70, 86.27]\n",
    "data4 = [91.05, 89.72, 92.90, 91.23, 96.93, 96.78]\n",
    "data5 = [90.76, 91.18, 90.41, 90.73, 97.09, 96.70]\n",
    "\n",
    "colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']\n",
    "\n",
    "# 绘制柱状图\n",
    "plt.bar(x - 2*bar_width, data1, bar_width, color=colors[0], label='MAHN')\n",
    "plt.bar(x - bar_width, data2, bar_width, color=colors[1], label='MAHN-no3')\n",
    "plt.bar(x, data3, bar_width, color=colors[2], label='MAHN-no2')\n",
    "plt.bar(x + bar_width, data4, bar_width, color=colors[3], label='MAHN-nosample')\n",
    "plt.bar(x + 2*bar_width, data5, bar_width, color=colors[4], label='MAHN-noweight')\n",
    "\n",
    "# 设置横坐标标签\n",
    "plt.xticks(x, ['Acc', 'Pre', 'Recll', 'F1', 'AUPR', 'AUC'], fontsize=10)\n",
    "# plt.xlim([0.85, 5.15])\n",
    "plt.ylim([70, 103.5])\n",
    "# 添加图例\n",
    "legend = plt.legend(loc='upper center', bbox_to_anchor=(0.5, 0.97), ncol=5, fontsize=10)\n",
    "\n",
    "# 调整图的尺寸\n",
    "plt.gcf().set_size_inches(10, 6)\n",
    "\n",
    "# 显示柱状图\n",
    "plt.savefig('result/ablation_experiments_1.pdf', format='pdf', dpi=300, bbox_inches='tight', bbox_extra_artists=(legend,))\n",
    "plt.show()\n",
    "plt.close()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
